<template>
  <view class="open-data-friends">
    <!-- 微信小游戏开放数据域 - 显示好友列表 -->
    <!-- #ifdef MP-WEIXIN -->
    <open-data type="openDataContext" class="open-data-canvas"></open-data>
    <!-- #endif -->
    
    <!-- 非小游戏环境提示 -->
    <!-- #ifndef MP-WEIXIN -->
    <view class="fallback">
      <text>此功能仅在微信小游戏中可用</text>
    </view>
    <!-- #endif -->
  </view>
</template>

<script>
export default {
  name: 'OpenDataFriends',
  props: {
    // 是否自动加载好友数据
    autoLoad: {
      type: Boolean,
      default: true
    }
  },
  mounted() {
    if (this.autoLoad) {
      this.loadFriends()
    }
  },
  methods: {
    // 加载好友数据
    loadFriends() {
      // #ifdef MP-WEIXIN
      try {
        // 向开放数据域发送消息
        const openDataContext = wx.getOpenDataContext()
        if (openDataContext) {
          openDataContext.postMessage({
            type: 'getFriends'
          })
          console.log('已请求获取好友数据')
        }
      } catch (err) {
        console.error('获取开放数据域失败:', err)
      }
      // #endif
    },
    
    // 更新用户分数
    updateScore(score) {
      // #ifdef MP-WEIXIN
      try {
        const openDataContext = wx.getOpenDataContext()
        if (openDataContext) {
          openDataContext.postMessage({
            type: 'updateScore',
            score: score
          })
          console.log('已请求更新分数:', score)
        }
      } catch (err) {
        console.error('更新分数失败:', err)
      }
      // #endif
    }
  }
}
</script>

<style scoped>
.open-data-friends {
  width: 100%;
  height: 100%;
  position: relative;
}

.open-data-canvas {
  width: 100%;
  height: 100%;
}

.fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 400rpx;
  color: #999;
  font-size: 28rpx;
}
</style>
